/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.unipar.oficina.controle.cadastros;

import br.com.unipar.oficina.modelo.cadastros.Colaborador;
import br.com.unipar.oficina.modelo.cadastros.Curso;
import br.com.unipar.oficina.service.cadastros.ColaboradorService;
import br.com.unipar.oficina.service.cadastros.CursoService;
import java.io.IOException;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.AjaxBehaviorEvent;
import javax.inject.Named;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

/**
 *
 * @author Thiago Marques
 */
@Controller
@Scope("request")
@Named("cursoBean")
public class CursoBean {

    private final CursoService cursoService;
    private final ColaboradorService colaboradorService;
    private Curso curso = new Curso();
    private List<Curso> cursos;
    private String cursoConsulta;
    private Colaborador colaborador;
    private List<Colaborador> colaboradores;

    @Autowired
    public CursoBean(CursoService cursoService, ColaboradorService colaboradorService) {
        this.cursoService = cursoService;
        this.colaboradorService = colaboradorService;
    }

    @PostConstruct
    public void init() {
        colaboradores = cursoService.getColaboradores();
    }

    public void listaColaboradores(AjaxBehaviorEvent event) {
        cursos = cursoService.getCursos(colaborador);
    }

    public String novo() {
        curso = new Curso();
        return "/gestao/cursoForm.jsf";
    }

    public void salvar(ActionEvent event) {
        try {
            cursoService.salvar(curso);
            FacesContext.getCurrentInstance().getExternalContext().redirect("cursoLista.jsf");
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    public void consultar(ActionEvent event) {
        cursos = cursoService.consultar(cursoConsulta);
    }

    public void excluir() {
        cursoService.excluir(curso);
        cursos.remove(curso);
    }

    public String editar() {
        colaborador = curso.getColaborador();
        listaColaboradores(null);
        return "/gestao/cursoForm.jsf";
    }

    public Colaborador getColaborador() {
        return colaborador;
    }

    public void setColaborador(Colaborador colaborador) {
        this.colaborador = colaborador;
    }

    public List<Colaborador> getColaboradores() {
        return colaboradores;
    }

    public void setColaboradores(List<Colaborador> colaboradores) {
        this.colaboradores = colaboradores;
    }

    public Curso getCurso() {
        return curso;
    }

    public void setCurso(Curso curso) {
        this.curso = curso;
    }

    public String getCursoConsulta() {
        return cursoConsulta;
    }

    public void setCursoConsulta(String cursoConsulta) {
        this.cursoConsulta = cursoConsulta;
    }

    public List<Curso> getCursos() {
        return cursos;
    }

    public void setCursos(List<Curso> cursos) {
        this.cursos = cursos;
    }

    
    
}
